Zend
Framework(简写ZF)是由 Zend 公司支持开发的完全基于 PHP5 的开源PHP开发框架,可用于开发 Web 程序和服务,ZF采用 MVC(Model–View-Controller) 架构模式来分离应用程序中不同的部分方便程序的开发和维护。
简介
Zend Framework (ZF) 是用 PHP 5.3及更高版本 来开发 web 程序和服务的开源框架。ZF 用 100% 面向对象编码实现。 ZF 的组件结构独一无二,每个组件几乎不依靠其他组件。这样的松耦合结构可以让开发者独立使用组件。 我们常称此为 “use-at-will”设计。
Zend Framework 项目的主要赞助者是 Zend Technologies,但许多 其它公司也贡献了组件或重大功能。例如
Google、
Microsoft和 StrikeIron 作为伙伴提供了 web 服务接口和其它 希望给 Zend Framework 开发者使用的技术。
没有活跃的 ZF 社区,Zend Framework 就不能交付和支持所有这些功能。社区成员包括贡献者都可以在这些地方找到: mailing lists, IRC channels 和其它论坛。无论你有什么关于 ZF 的问题,在社区里总能找到答案。
Zend Framework经历了长达数年的开发,终于在2012年9月5日正式发布了Zend Framework 2,简称
ZF2。时隔1.0版本的发布已经有5年之久。新的ZF2基本重写了整个底层代码,可以看作一个全新的框架,并且带来了很多新的特性。
第2版概况
模块化
(ModuleManager)
比起ZF1来说,ZF2原生支持模块的概念,任意第三方php程序,只要遵循Zend的编码规范和代码结构,都可以变成一个Zend模块。
事件驱动
(EventManager)
传统程序中,代码都是按线性顺序执行的,所以开发中往往很难将一些功能独立为一个组件或模块。
事件驱动,或者也可以叫钩子(Hook),改变了普通框架
MVC流程化的运行方式,应用了事件驱动之后,程序将呈现“注册事件” => “触发事件”的跳跃式运行,可以在不影响原有程序代码的,很容易的在任意位置加入新的业务逻辑,让项目的开发变得极为灵活。
服务管理器
(ServiceManager)
依赖注入
(Di Dependency Injection)
依赖注入广泛应用于Java的主流框架中,可以很好的解除大型应用中的耦合。ZF2引入Di也经过了反复的考量和权衡,即使进入beta阶段,Di仍然一度作为ZF2的基本实现方案,整个Mvc的配置基于Di。最终为了避免陷入Di可能造成的元数据式编程泥潭(Metaprogramming),Di只是作为ZF2的底层实现,上层加入了ServiceManager。普通开发者在使用ZF2的过程中不需要接触到Di的层面。不过这并不妨碍DI作为一个优秀的php组件存在并发挥作用。
社会化编程
ZF2的代码完全托管在
Github,借助Github的优秀设计,任何人都可以轻松的通过fork参与ZF2的项目建设,甚至提交新的模块功能。
第1版概述
组件
ZF中的组件可以独立使用,但如果将它们组合起来,就形成了一个强大而可扩展的web开发框架。 ZF 提供了强壮而高效的
MVC实现,易于使用的数据库摘要和实现 HTML 表单解析、校验和过滤的表单组件,这样 开发者可以通过这些易用的、
面向对象的接口联合所有这些操作。其它组件如 Zend_Auth和 Zend_Acl通过通用 的证书(credential)存储提供
用户认证和授权。还有其它实现的客户库来简化访问最流行的可用的 web 服务。 不论你的程序需要什么,你都可能从 Zend Framework 中找到经过全面和严格测试的组件来使用,可以极为有效地减少开发时间。
Zend_Acl
提供轻量并灵活的
访问控制列表(ACL,AccessControlList)功能和权限管理
Zend_Amf
Zend_Auth
主要用于认证,如用户注册,登录
Zend_Cache
为应用程序提供缓存服务
Zend_Config
简化应用程序中配置数据的使用
Zend_Console_Getopt
帮助命令行程序解析它们的选项和参数
Zend_Controller
Zend_Currency
通用的货币处理方式,根据不同的地区,使用不同的货币格式
Zend_Date
处理日期
Zend_Db
提供基于PDO的数据库操作方法
Zend_Debug
用于调试程序中表达式或变量的信息
Zend_Exception
ZendFramework中的
异常处理类,ZendFramework抛出的所有异常都必须是它的子类的对象
Zend_Feed
提供对RSS和AtomFeed的处理功能
Zend_Filter
提供了一系列普遍使用的数据过滤器,同时也提供了一个简单的过滤器机制,使多个过滤器以用户定义的顺序对一个单一的数据进行过滤
Zend_Form
结合其它组件来创建和处理表单元素
Zend_Gdata
Gdata是GoogleData的缩写,Zend_Gdata提供了访问和处理GoogleAPI的功能
Zend_Layout
实现经典的两步视图模型
Zend_Ldap
提供对LDAP(
轻量级目录访问协议)授权的基本支持
Zend_Loader
提供动态加载文件和类功能
Zend_Locale
本地化
Zend_Log
提供日志记录功能,支持多个日志后端
Zend_Mail
提供邮件发送功能
Zend_Measure
提供单位换算转换功能
Zend_Memory
Zend_Memory组件用于在一个受限制的内存环境下管理数据
特性
Zend Framework 是用于 PHP 开发 Web 应用程序和 Web Service 程序的高品质开源框架。
利用 PHP 自身特性,Zend Framework 有很高的易用性和强大的功能。它提供了先进、健壮和安全的开发网站的解决方案。
代码完全采用PHP5
面向对象编写;丰富完善的组件支持;良好的 Ajax 支持;
模块化的结构设计,易于扩展;完善的文档资料;灵活的
架构设计;
MVC是提高程序的可维护性的方法:将这个程序代码分为MVC三个部分
模型
关心的是欲显示的数据细节。关注的应用程序的业务逻辑部分,关注的是如何使用数据库来读取和保存数据。
视图
关心的是用户显示的部分,它通常是HTML
控制器
将特定的模型和视图结合起来,保证将正确的数据显示到页面上。